架構對於行動裝置應用程式開發是一個非常重要的部份
一個好的架構能夠使開發者好增加功能、debug,而且還擁有更高的可讀性
在學習架構以前,我的 side project 都是 activity 一路到底,我需要什麼功能,只要是在同一個畫面的都塞進去,這使得 activity 越來越大,也就變得不好閱讀。這時候就需要架構的協助了,他讓一個 activity 切出不同的功能出來。
在 android 的開發裡 有三種架構最為常見
而在我查到的資料中,MVVM 被認為是最好的架構
所以我就也只學 MVVM 了 xD
MVVM分別代表三個部分
其三個皆有不同的功能和定位
在開始講之前,先來看看這張圖
圖片轉自 [Guide to app architecture] https://developer.android.com/jetpack/guide*
底下是關於 room 的東西,會在往後的天數做分享
這張圖快速地說明了各個部份的關係
任何有關畫面的東西,會被分類在此:舉凡像是 activity、fragment、adapter、layout 等。在 MVVM 架構下,他們只需要負責資料的輸入輸出,至於資料從何而來就要看下面的 view model
負責 repository 跟 view 之間的資料交換,可以透過 livedata 的 observe、databinding 等方式呈現。view model 不需要知道資料怎麼來的,只要負責持有 view 的資料就好。理論上來說,每個 activity 或 fragment 都需要唯一的 view model,當然也有特例。
包含所有的 data class、repository,以及負責資料的儲存、獲取等等,形式包含聯網的 api、本地的資料庫等。
雖然 MVVM 名字中並沒有出現 repository,但它也是非常重要,就是它負責存 Dao 從 database 或是 api 取得的資料。再讓 view model 從而存取之。
在實作上,我認為,因為我現在做的 side project 還是太小個的關係,且資料來源不多,實際操作 MVVM 架構有一種很繁瑣的感覺。
文字敘述果然非常抽象,下幾篇就寫一個簡單示範。